// 系统管理
import vueInstance from '@/main.js'
import i18n from '@/i18n'
import { handleEmpty } from '@/utils/common'

const getUserId = () => {
  return vueInstance.$store.getters.getUserId
}

/**
 * 参数定义
 *
 * @param api
 *            接口地址
 * @param item
 *            操作项（必须是相应页面的菜单名称，否则操作日志页面根据操作项下拉列表会对应不上）
 * @param terminal
 *            操作命令（具体操作名称，如：登录，查询，修改设备名称等）
 * @param object
 *            操作对象（具体操作的对象名称，如：设备名，区域名等）
 * @param currentUserId
 *            当前操作用户ID
 * @param i18nKey
 *            国际化里面的key
 * @param reqData
 *            接口里携带的参数
 */

export default [
  // {
  //   api: '/param/mod',
  //   item: 'MENU_CABLE_MANAGER', // 光缆管理
  //   terminal: 'LENGTH_CHECK_CONFIG', // 长度校验设置
  //   i18nKey: 'CABLE_LENGTH_CHECK_CONFIG_LOG',
  //   object: '/',
  //   formatter(reqData) {
  //     const currentUserId = getUserId()
  //     const obj = JSON.parse(reqData.paramValue)
  //     const logParams = {
  //       checked1: obj.greaterEnable ? i18n.t('ENABLE') : i18n.t('DISABLE'),
  //       checked2: obj.lessEnable ? i18n.t('ENABLE') : i18n.t('DISABLE'),
  //       value1: obj.greater,
  //       value2: obj.less
  //     }
  //     return JSON.stringify({
  //       ...logParams,
  //       currentUserId: currentUserId,
  //       i18nKey: this.i18nKey
  //     })
  //   }
  // },
  {
    api: '/alarmRecord/expData',
    item: 'MENU_ALARM_HISTORY', // 历史告警
    terminal: 'EXPORT_CURRENT_PAGE', // 导出当前页
    i18nKey: 'EXPORT_LOG_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.terminal = reqData.type === 'all' ? 'EXPORT_ALL' : 'EXPORT_CURRENT_PAGE'
      this.i18nKey = reqData.type === 'all' ? 'ALARM_EXPORT_ALL_LOG' : 'ALARM_EXPORT_CUR_LOG'
      return JSON.stringify({
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/operateLog/expData',
    item: 'LOG_TYPE_OPREATION', // 操作日志
    terminal: 'EXPORT_LOG', // 导出日志
    i18nKey: 'EXPORT_LOG_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      return JSON.stringify({
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/org/add',
    item: 'MENU_ORG_MANAGER', // 机构管理
    terminal: 'NEWAGENCY', // 新增机构
    i18nKey: 'SYSTEM_ORG_ADD_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const {
        orgName = '',
        orgId = ''
      } = reqData
      if (reqData.parentId == 0) {
        // 新增顶级机构
        return JSON.stringify({
          orgName,
          orgId,
          currentUserId: currentUserId,
          i18nKey: this.i18nKey
        })
      } else {
        // 新增子机构
        return JSON.stringify({
          orgName,
          orgId,
          currentUserId: currentUserId,
          i18nKey: 'SYSTEM_ORG_ADD_CHILD_LOG'
        })
      }
    }
  },
  {
    api: '/org/mod',
    item: 'MENU_ORG_MANAGER', // 机构管理
    terminal: 'MODIFYTHEAGENCY', // 修改机构
    i18nKey: 'SYSTEM_ORG_MOD_LOG',
    object: '/',
    formatter(reqData) {
      const currentUserId = getUserId()
      const {
        orgName = '',
        orgId = ''
      } = reqData
      this.object = orgName || orgId
      return JSON.stringify({
        orgName,
        orgId,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/org/del',
    item: 'MENU_ORG_MANAGER', // 机构管理
    terminal: 'DEL_ORG', // 删除机构
    i18nKey: 'SYSTEM_ORG_DEL_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const {
        orgName = '',
        orgId = ''
      } = reqData
      this.object = orgName || orgId
      return JSON.stringify({
        orgName,
        orgId,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/role/add',
    item: 'MENU_ROLE_MANAGER', // 角色管理
    terminal: 'NEWROLE', // 新增角色
    i18nKey: 'SYSTEM_ROLE_ADD_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId()
      const {
        roleName = '',
        roleId = ''
      } = reqData
      return JSON.stringify({
        roleName,
        roleId,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/role/mod',
    item: 'MENU_ROLE_MANAGER', // 角色管理
    terminal: 'MODIFYTHEROLE', // 修改角色
    i18nKey: 'SYSTEM_ROLE_MOD_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const {
        roleName = '',
        roleId = ''
      } = reqData
      this.object = roleName || roleId
      return JSON.stringify({
        roleName,
        roleId,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/role/del',
    item: 'MENU_ROLE_MANAGER', // 角色管理
    terminal: 'DEL_ROLE', // 删除角色
    i18nKey: 'SYSTEM_ROLE_DEL_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const {
        roleName = '',
        roleId = ''
      } = reqData
      this.object = roleName || roleId
      return JSON.stringify({
        roleName,
        roleId,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/user/add',
    item: 'MENU_USER_MANAGER', // 用户管理
    terminal: 'NEWUSERS', // 新增用户
    i18nKey: 'SYSTEM_USER_ADD_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const { userId = '' } = reqData
      return JSON.stringify({
        userId,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/user/mod',
    item: 'MENU_USER_MANAGER', // 用户管理
    terminal: 'MODIFYTHEUSER', // 修改用户
    i18nKey: 'SYSTEM_USER_MOD_LOG',
    object: '/',
    formatter(reqData) {
      const currentUserId = getUserId() // 当前平台登录用户
      const {
        userId = '',
        realName = ''
      } = reqData
      this.object = realName || userId
      return JSON.stringify({
        realName,
        userId,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/user/del',
    item: 'MENU_USER_MANAGER', // 用户管理
    terminal: 'DEL_USER', // 删除用户
    i18nKey: 'SYSTEM_USER_DEL_LOG',
    object: '/',
    formatter(reqData) {
      const currentUserId = getUserId() // 当前平台登录用户
      const {
        userId = '',
        realName = ''
      } = reqData
      this.object = realName || userId
      return JSON.stringify({
        realName,
        userId,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/user/resetPwd',
    item: 'MENU_USER_MANAGER', // 用户管理
    terminal: 'RESET_PASSWORD', // 重置密码
    i18nKey: 'SYSTEM_PWD_RESET_LOG',
    object: '/',
    formatter(reqData) {
      const currentUserId = getUserId() // 当前平台登录用户
      const {
        userId = '',
        realName = ''
      } = reqData
      this.object = realName || userId
      return JSON.stringify({
        realName,
        userId,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/authen/modPwd',
    item: 'MOD_PWD', // 修改密码
    terminal: 'MOD_PWD', // 修改密码
    i18nKey: 'MOD_PWD_LOG',
    object: '/',
    formatter(reqData) {
      const currentUserId = getUserId() // 当前平台登录用户
      const { newPwd = '' } = reqData
      return JSON.stringify({
        newPwd,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/licenseAccept/grantLicense',
    item: 'APPROVAL_STATUS_AUTH', // 平台授权
    terminal: 'UPDATEFILE', // 更新授权文件
    i18nKey: 'UPDATEFILE_LOG',
    object: '/',
    formatter(reqData) {
      const currentUserId = getUserId() // 当前平台登录用户
      return JSON.stringify({
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  }
]
